package dao;

import java.sql.SQLException;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import pojo.Vendedor;

public class DaoVendedor implements Dao<Vendedor> {
	
	private EntityManager em;
	
	public DaoVendedor(EntityManager em) {
		super();
		this.em=em;
	}
	
	@Override
	public void gravar(Vendedor bean) throws SQLException {
		em.getTransaction().begin();
		em.persist(bean);
		em.getTransaction().commit();
	}

	@Override
	public Vendedor buscar(String valor) throws SQLException {
		Query q = em.createQuery("SELECT v FROM Vendedor v WHERE v.id = :id");
		q.setParameter("id", Long.parseLong(valor));
		return (Vendedor) q.getSingleResult();
	}

	@Override
	public void excluir(Vendedor v) throws SQLException {
		em.getTransaction().begin();
		v = em.find(v.getClass(), v.getId());
		em.remove(v);
		em.getTransaction().commit();	
		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Vendedor> obterLista(Class<Vendedor> tipo) throws SQLException {
		Query q = em.createQuery("SELECT v FROM Vendedor v");
		return q.getResultList();
	}

	@Override
	public void atualizar(Vendedor entidade) throws SQLException {
		em.getTransaction().begin();
		em.merge(entidade);
		em.getTransaction().commit();
		
	}

}
